<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <script>
        // 1.数组reduce方法：
        // a.作用：遍历数组元素，为每个数组执行一次回调函数。
        // b.语法: arr.reduce((sum,value) =>{return sum + value})
        //   返回值: 最终sum值
        // c.应用场景:数组求和/平均值/最小值/最大值
        // d.注意点最好给一个初始值,避免空数组报错
        let arr = [20,21,54,84,65,12];

        // sum :初始值,默认为数组第一个元素,默认数组第二个元素.
        // value:数组的每一个元素,默认为数组第二个元素.
        
        let arr1 = arr.reduce((sum,value)=>{
            // 这里必须return,相当于把本次计算的结果赋值給下一次的sum:  sum = sum + value
            return sum + value;
        })
        console.log(arr1);//256


        // 下面这种写法与上面等价,ES6箭头函数如果只有一行代码则可以省略大括号,且可以省略return.
        console.log(arr.reduce((sum,value) =>sum + value ));

        // 作业求最大值
        console.log(arr.reduce((max,item)=> {
            return max>item?max:item//84
        }));
    </script>
</body>
</html>